#Authors:xiaobei

import os
#用栈模拟递归遍历
    def GetAllDir(path):
    stack = []                              #创建空栈
    stack.append(path)                      #当栈为空的时候，结束循环
    while(len(stack)!=0):                   #循环从栈中取出文件路径（出栈）
    dirPath = stack.pop()               #stack。pop()默认把栈中最后一个元素删除，并返回第一个元素值,符合栈的“先进后出原则
    if(os.path.isfile(dirPath)):
    print("<文件>:",os.path.basename(dirPath))
    else:
    print("<目录>:",os.path.basename(dirPath))
    fileList = os.listdir(dirPath)
    for filename in fileList:       #循环找到路径下的文件，并压入栈中（文件入栈）
    file_abs_path = os.path.join(dirPath,filename)      #使用绝对路径
    if(os.path.isfile(file_abs_path)):
    stack.append(file_abs_path)                     #如果是文件就等待稍后处理
    for filename in fileList:       #循环找到路径下的目录，并在文件之后压如栈中（由于栈“先进后出”的性质，优先处理目录）
    file_abs_path = os.path.join(dirPath,filename)      #使用绝对路径
    if(os.path.isdir(file_abs_path)):
    stack.append(file_abs_path)
    path = r"F:\untitled\Dir1"
    GetAllDir(path)
    ————————————————
    版权声明：本文为CSDN博主「拆掉思维的墙」的原创文章，遵循CC 4.0 BY-SA版权协议，转载请附上原文出处链接及本声明。
    原文链接：https://blog.csdn.net/weixin_44704691/article/details/102639587